package com.bitdf.txing.group.feign;

import com.bitdf.txing.chat.config.FeignInterceptor;
import com.bitdf.txing.common.utils.R;
import com.bitdf.txing.group.to.GroupInfoTo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.io.IOException;

/**
 * @author Lizhiwei
 * @date 2023/1/26 19:23:14
 * 注释：
 */
@FeignClient(
        name = "tx-search",                 // 服务名称
        configuration = FeignInterceptor.class       // 请求拦截器 （关键代码）
)
public interface EsFeignService {
    /**
     * 上传组团
     * @param groupInfoTo
     * @return
     * @throws IOException
     */
    @PostMapping("/txing/search/group/publish")
    R productStatusUp(@RequestBody GroupInfoTo groupInfoTo) throws IOException;

//    /**
//     *  组团点赞数更新
//     * @param groupId
//     * @param count
//     * @return
//     * @throws IOException
//     */
//    @GetMapping("/tx-search/modify/likecount")
//    R modifyLikeCount(@RequestParam("groupId") Long groupId, @RequestParam("count") Long count) throws IOException;
//
//    /**
//     * 浏览量增加
//     * @param groupId
//     * @return
//     * @throws IOException
//     */
//    @GetMapping("/tx-search/modify/viewcount")
//    R modifyViewCount(@RequestParam("groupId") Long groupId) throws IOException;

    /**
     * 关闭活动
     * @param groupId
     * @return
     * @throws IOException
     */
    @GetMapping("/txing/search/group/closeGroup")
    R closeGroup(@RequestParam("groupId") Long groupId) throws IOException;

    /**
     * 远程调用tx-search服务对组团的某字段做加或减运算
     * @param groupId 组团id
     * @param opsValue 操作数 1：表示+1 -2：表示-2
     * @param target 所要操作的字段
     * @return
     */
    @GetMapping("/txing/search/group/count/modify/increOrDcre")
    R countIncreOrDcre(@RequestParam("groupId") Long groupId,@RequestParam("opsValue") Integer opsValue,@RequestParam("target") String target);

    /**
     * 远程调用tx-search服务更新组团
     * @param groupInfoTo
     * @return
     * @throws IOException
     */
    @PostMapping("/txing/search/group/update")
    R updateGroup(@RequestBody GroupInfoTo groupInfoTo) throws IOException;
}
